#1、有这样的一个列表，深度不可知，列表里面还会嵌套列表，我想要把这个列表从左到右拼接成一个新的列表，且顺序不变
#举例：[12,33,[11,22,33,[55,66,99]],[55,66]]
#变成：[12, 33, 11, 22, 33, 55, 66, 99, 55, 66]
'''
def list_(result_list):
    result = []
    for i in result_list:
        if isinstance(i,list):
            result += list_(i)
        else:
            result.append(i)
    return result
result_list =[12,33,[11,22,33,[55,66,99]],[55,66]]
list1 =list_(result_list)
print(list1)
'''
#2、编写装饰器，为多个函数加上认证的功能（用户的账号密码）
# 要求登录成功一次，后续的函数都无需输入用户名和密码
'''
def login_required(func):
    def password(*args,**kwargs):
        login_status =  {}
        if 'user' in login_status:
            return func(*args,**kwargs)
        else:
            name = input('请输入用户名')
            pwd = input('请输入密码')
            if name == 'admin' and pwd == '123456' :
                login_status['user'] = name
                print('登录成功')
                return func(*args,**kwargs)
            else:
                print('登录失败')
    return password
@login_required
def protected_function1():
    print("这是一个受保护的函数1。")
@login_required
def protected_function2():
    print("这是一个受保护的函数2。")
protected_function1()
protected_function2()
'''

#3、请实现一个装饰器，把函数的返回值+100然后返回
'''
def add100(func):
    def add_():
        result = func()
        return result + 100
    return add_
@add100
def func():
    return 100
print(func())
'''

#4、请实现一个装饰器，通过一次调用使函数重复执行5次
'''
def recycle5(func):
    def recycle(*args):
        for _ in range(5):
            result = func(*args)
        return result

    return recycle

@recycle5
def result():
    print("Hello, world!")
result()
'''
#5、输入任意个字符串,分别实现从小到大输出和从大到小输出

nums = input("输入任意个字符串，用','隔开").split(',')
nums = [num for num in nums]
nums.sort()
print(nums)
nums.sort(reverse=True)
print(nums)




#6、接收n个数字，求这些参数数字的和
'''
def sum_num():
    n = int(input("请输入数字的数量："))
    numbers = []
    for i in range(n):
        num = int(input(f"请输入第{i + 1}个数字："))
        numbers.append(num)
    total = sum(numbers)
    print("这些数字的总和为：", total)
sum_num()
'''
#7、编写一个函数，实现数字的自增（从0开始，每调用一次，数字+1）
'''
def func1():
    num = 0
    def func2():
        nonlocal num
        num+=1
        return num
    return func2
f = func1()
f()
f()
print(f())
'''